草庐IT

带指针的 C++ vector

全部标签

可变参数函数的 C++ Vector 包装器

我有一个看起来像这样的api:templateWidget::Widget(std::stringformat_str,Args&&...args);如果您有一个“args”的字符串vector,即编译时不知道args长度,您将如何调用此方法?如果将this转换为类似的东西,包装函数的实现会是什么样子?templateWidget::WrapperWidget(std::stringformat_str,vector); 最佳答案 Widget::Widget函数实际上并不存在,它只是一个模板。只有在您指定参数的数量和类型后,函数才

c++ - 指针指向刚好超过对象末尾的位置是什么意思?

指针指向刚好超过对象末尾的位置是什么意思?来自C++Primer,第52页:PointerValueThevalue(i.e.,theaddress)storedinapointercanbeinoneoffourstates:Itcanpointtoanobject.Itcanpointtothelocationjustimmediatelypasttheendofanobject.Itcanbeanullpointer,indicatingthatitisnotboundtoanyobject.Itcanbeinvalid;valuesotherthantheprecedingth

c++ - 检查 bool vector (范围)是否等于 1 和 0 的序列

我之前拥有的是一串1和0,我可以简单地检查某个范围是否等于我想要的序列:if(myString.substr(0,4)=="1110")...出于内存原因,我将这个字符串变成了vector,因为vector中的一个bool只占用1位而不是1字节。现在,这里有一个问题。我想做与substr相同的比较.可能没有类似的东西:if(myVector[0]==true&&myVector[1]==true&&...)或vectortmpVector;tmpVector.push_back(true);tmpVector.push_back(true);...if(myVector==tmpVec

c++ - 特征向量数组的 vector 运算

我有一个二维特征数组,其中数组中的每个项目都是一个3元素特征向量(例如,表面上的速度场)。我想将二维数组的每个元素与一个3元素EigenRowVector相乘,有效地进行点积。Eigen::ArrayvelField(5,5);Eigen::Vector3dn;//...initialisationofnandvelFieldnotshownEigen::Arrayresult(5,5);result=n.transpose()*velField;这会产生编译错误YOUMIXEDDIFFERENTNUMERICTYPES。但是,如果我不分配结果,而只是计算它:n.transpose()

c++ - 空指针指针(void **)

我正在http://msdn.microsoft.com/en-us/library/windows/desktop/dd389098(v=vs.85).aspx阅读COM示例我真的无法理解(void**)inhr=pGraph->QueryInterface(IID_IMediaControl,(void**)&pControl);所以我尝试了类中不同类型指针返回的一些值classPoint{private:intx,y;public:Point(intinputX,intinputY){x=inputX,y=inputY;}intgetX(){returnx;}intgetY(){

c++ - 查找具有偶数值的 vector 元素

您能解释一下这段代码是如何工作的吗?它成功计算了具有偶数值的vector元素,但我不清楚在这种特殊情况下绑定(bind)是如何工作的。count_if(vec.begin(),vec.end(),std::bind(logical_not(),std::bind(modulus(),placeholders::_1,2))); 最佳答案 请注意,您发布的代码计算vector中的偶数数,不是奇数:count_if(vec.begin(),vec.end(),bind(logical_not(),bind(modulus(),place

C++ CUDA 指向成员的指针

我想知道在CUDA中是否有将指向成员的指针传递给设备函数的方法。由于指针实际上只是相对于结构/类,它似乎没有任何理由不起作用,但我似乎无法编译代码。#includestructS{intF1;intF2;intF3;};__device__Sx;__global__voidinitialize_S(){x.F1=100;x.F2=200;x.F3=300;}__global__voidprint_S(intS::*m){printf("val:%d\n",x.*m);}intmain(){initialize_S>>();print_S>>(&S::F1);cudaDeviceSync

c++ - 为类存储指向另一个类的指针复制构造函数析构函数和赋值运算符

我是新来的,这是我的第一个问题。我对我的家庭作业有疑问。我被要求设计一个抽象类“Base”,它由类“Sub”继承(在作业中有sub1、sub2等,但我试图尽可能地缩小它的范围)。然后,我应该设计一个类“BasePtr”,它存储一个指向“Base”对象的指针。最后,baseptr:s将存储在std::vector中,并使用ostream_iterator和复制写入文件。然后应使用ifstream_iterator读取该文件,并将其存储在std::list中。我已经解决了上述问题,但在实现析构函数、复制构造函数和赋值运算符时遇到了一些问题(因为我在我的BasePtr类中动态分配内存,我相信

c++ - 从 CUDA 内核访问全局内存指针

我正在尝试分配设备内存并将指针存储为全局变量。但是,当我尝试从内核访问内存时,我从cudaDeviceSynchronize()收到此错误:cudaErrorIllegalAddress。我检查了从cudaMalloc和cudaMemcpy返回的cudaStatus代码,它们都成功了。我希望下面的示例足够直截了当,足以说明我想做什么。基本上,我有大量示例数据,我希望所有内核都能从中读取这些数据,但我不想每次都必须将指针传递给内核调用。我正在使用Windows8x64,使用VisualStudio2012和nvcc(通过VS集成)编译代码。目标是x64调试可执行文件。我的设备是GTX78

c++ - 派生类不能使用指向 protected 基类成员的成员指针

includeclassBase{protected:intfoo;intget_foo(){returnfoo;}};classDerived:publicBase{public:voidbar(){intBase::*i=&Base::foo;this->*i=7;printf("foois%d\n",get_foo());}};intmain(){Derivedd;d.bar();}我不明白为什么我的派生类型不能指向基类的protected成员。它有权访问该成员。它可以调用类似作用域的函数。为什么它不能创建一个成员指针?我正在使用gcc4.1.2,但出现此错误:test.cc:I